using UnityEngine;
using System;
using System.Collections;
using System.Collections.Generic;

public interface IPoint3D
{
	int X { get; }
	int Y { get; }
	int Z { get; }
}

public interface IConstructable
{
	// for buildings which can be non-statically instantiated
	double TurnCounter { get; set; }						// turn counter

	void OnRemove();
}

public interface IDispatchable
{
	GameEnums.TechName[] MotherTech { get; set; }
	Kingdom Belong { get; set; }
}

public interface IRepeatable
{
	bool Repeat { get; set; }

	bool CheckRepeat();
	bool CheckRepeat(Planet pl);
}

public interface IWarrable
{

}

public interface IBuildable
{
	string DisplayName { get; set; }
	double BuildCost { get; set; }				// devpower needed to build
	double OwnCost { get; set; }					// current accumulated devpower
}

public interface ISerializable
{
	ulong Serial { get; }
	void Serialize(GenericWriter writer);
}